package unq.tpi.persistencia.alumnos.dao.hbm;

import org.hibernate.Query;

import unq.tpi.persistencia.alumnos.arq.runner.HibernateRunner;
import unq.tpi.persistencia.alumnos.dao.MateriaDAO;
import unq.tpi.persistencia.alumnos.model.Alumno;
import unq.tpi.persistencia.alumnos.model.Materia;

public class MateriaDAOHbm implements MateriaDAO {

	public Materia getPorCodigo(String codigoM) {
		Query query = HibernateRunner.currentSession().createQuery("FROM Materia WHERE codigo = :codigoMateria");
		query.setString("codigoMateria",codigoM);

		return (Materia)query.uniqueResult();
	}

	public void save(Materia materia) {
		HibernateRunner.currentSession().save(materia);
	}

	@Override
	public Integer getCantidadAprobados(String codigoM) {
		Query query = HibernateRunner.currentSession().createQuery("Select count(*) FROM Cursada as c JOIN c.materia as m WHERE m.codigo = :codigo   AND  nota >= 4");
		query.setString("codigo",codigoM);
		
		return ((Long)query.uniqueResult()).intValue();
	}
	
	@Override
	public void delete(Materia materia) {
		HibernateRunner.currentSession().delete(materia);
	}
}
